import { consola as logger } from 'consola'
import { cpSync, readFileSync, writeFileSync } from 'fs'

export default async () => {
  // const root = process.cwd();

  console.clear();
  logger.info(`
  🛵 您好，这里是闲暇模板初始化工具，为了简化项目初始化操作而创建的。
  引擎采用vite而非nextjs或nuxtjs, 因为vite更轻量，个人非常喜欢；
  vite所携带的问题也需要您自己解决，比如web3下需要使用node工具集，会报错为“global is not defined”等等。
  另外，由于我非常依赖typescript并且typescript可以为开发提供非常大的帮助，所以这里就仅支持ts了。
  祝您使用愉快！
`)

  const defaultName = 'my-app'
  const name = await logger.prompt('请输入项目名', { type: 'text', default: defaultName, placeholder: defaultName })
  const base = await logger.prompt('使用React或Vue', { type: 'select', options: ['react'], initial: 'React' })
  // const util = await logger.prompt('选择包管理工具', {type: 'select', options: ['npm', 'pnpm', 'yarn', 'bun'], initial: 'npm'});
  // const css = await logger.prompt('选择css工具', {type: 'select', options: ['tailwindcss', 'scss', 'less'], initial: 'tailwindcss'});
  // const web3 = await logger.prompt('是否使用web3', {type: 'confirm', initial: false});
  // const http = await logger.prompt('选择Axios或Fetch', {type: 'select', options: ['axios', 'fetch'], initial: 'axios'});

  cpSync(`./templates/${base}-ts`, name, { recursive: true });
  // 修改packagejson
  const pkg = JSON.parse(readFileSync(`${name}/package.json`, 'utf-8'));
  console.log(pkg, typeof pkg);
  writeFileSync(`${name}/README.md`, `# ${name}`)
}
